//1.3.1
// var a = 1 + 3;//赋值语句
// console.log(a)//4

// 1 + 3;
// 'abc';//无意义

//1.3.2-1
// var a;//未赋值
// console.log(a) // undefined

// x//未定义
// // ReferenceError: x is not defined

// var a=1,b=2;//声明并赋值多个变量
// console.log(a) //1
// console.log(b)//2

// var x = 1;
// var x;//重新声明一个已经存在的变量，是无效的
// console.log(x)// 1

// //第二次声明的时候还进行了赋值，则会覆盖掉前面的值
// var x = 1;
// var x = 2;
// console.log(x)//2
// // 等同于
// var x = 1;
// var x;
// x = 2;
// console.log(x)//2

// //1.3.2-2
// console.log(a);
// var a = 1;//undefined,a还没有声明和赋值

// var a;
// console.log(a);
// a = 1;//undefined,变量a已声明，但还未赋值

//1.3.3
// 1a  // 第一个字符不能是数字
// 23  // 同上
// ***  // 标识符不能包含星号
// a+b  // 标识符不能包含加号
// -d  // 标识符不能包含减号或连词线


//1.3.4
// 这是单行注释

/*
 这是
 多行
 注释
*/

//<!--和-->也被视为合法的单行注释
// var x = 1; <!-- x = 2;
// --> x = 3;
// console.log(x)//1

//-->只有在行首，才会被当成单行注释，否则会当作正常的运算
// -->x=1
// console.log(x)//ReferenceError: x is not defined

// function countdown(n) {
//     while (n --> 0) console.log(n);
//   }
//   countdown(3)
//   // 2
//   // 1
//   // 0

//1.3.5
//对于var命令来说，JavaScript 的区块不构成单独的作用域（scope）
// {
//     var a = 1;
//   }
  
//   console.log(a) //1
//let 构成，区块内外无法联系
// {
//     let a = 1;
//   }
  
//   console.log(a) //ReferenceError: a is not defined

//1.3.6-1
//“布尔值”往往由一个条件表达式产生的，必须放在圆括号中，表示对表达式求值
// var m=3
// if (m === 3) {
//     m += 1;
//   }
//   console.log(m)//4
  
// var x = 1;
// var y = 2;
// if (x == y) {
//     console.log(true);
// }
// else console.log(false);//false

// if (x = 2) { 
//     console.log(x)//2
// }

// if (2 = x) {
//     console.log(x)//SyntaxError: Invalid left-hand side in assignment
// }

//1.3.6-2
//else代码块总是与离自己最近的那个if语句配对。
// var m = 1;
// var n = 2;
// if (m !== 1){//false
//     console.log('hello world')
// }
// if (n === 2) {
//     console.log('hello');//true
// }
// else console.log('world');

var m = 1;
var n = 2;

// if (m !== 1) {
//     if (n === 2) {
//       console.log('hello');
//     } else {
//       console.log('world');
//     }
//   }//无输出
//等于
// if (m !== 1) {//false
//     console.log('hello');
//  }//无输出

// if (m == 1) {
//     hello
// }//ReferenceError: hello is not defined

// if (m !== 1) {
//     if (n === 2) {
//       console.log('hello');
//     }
//   } 
// else {
//     console.log('world');
//   }//world

//1.3.6-3
//无break
// var x = 1;
// switch (x) {
//   case 1:
//     console.log('x 等于1');
//   case 2:
//     console.log('x 等于2');
//   default:
//     console.log('x 等于其他值');
// }
// x等于1
// x等于2
// x等于其他值

//有break
//var x = 10;
// switch (x) {
//   case 1:
//     console.log('x 等于1');
//     break
//   case 2:
//     console.log('x 等于2');
//     break
//   default:
//     console.log('x 等于其他值');
// }//x 等于其他值


//1.3.6-4
// var n=10
// console.log(
//    (n % 2 === 0) ? true : false
// )//true

// var myVar;
// console.log(
//   myVar ?
//   'myVar has a value' :
//   'myVar does not have a value'
// )//myVar does not have a value

// var n= 10 
// console.log(
//     '数字' + n + '是' + (n % 2 === 0 ? '偶数' : '奇数')
// )//数字10是偶数

//1.3.7-1
// var i = 0;

// while (i < 5) {
//   console.log('i 当前为：' + i);
//   i = i + 1;
// }
//i 当前为：0
// i 当前为：1
// i 当前为：2
// i 当前为：3
// i 当前为：4
//while (let i=0,i<5)不行，因为while不再=在迭代时创建新的作用域

// while (true) {
//     console.log('Hello, world');
//   }true是循环条件，它始终为真,so无限循环

//1.3.7-2
// var x = 3;
// for (var i = 0; i < x; i++) {
//   console.log(i);
// }
// 0
// 1
// 2
//等于
// var x = 6;
// var i = 0;

// while (i < x) {
//   console.log(i);
//   i+=2;
// }
/*0
2
4*/

// //省略了for语句表达式的三个部分，结果就导致了一个无限循环。
// for ( ; ; ){
//     console.log('Hello World');
//   }

//1.3.7-3
// var x = 3;
// var i = 0;

// do {
//   console.log(i);
//   i++;
// } while(i < x);
/*0
1
2
*/

// var x = 0;
// var i = 2;

// do {
//   console.log(i);
//   i++;
// } while(i < x);
//2, 不符合条件，只运行console.log(i);因为是先打印后判断

//1.3.7-4
// var i = 0;

// while(i < 100) {
//   console.log('i 当前为：' + i);
//   i++;
//   if (i === 3) break;
// }
/*
i 当前为：0
i 当前为：1
i 当前为：2*/

// for (var i = 0; i < 5; i++) {
//     console.log(i);
//     if (i === 3)
//       break;
//   }
//   // 0
//   // 1
//   // 2
//   // 3

// var i = 0;

// while (i < 10){
//   i++;
//   if (i % 2 === 0) continue;//i是2的倍数时，则不会输出
//   console.log('i 当前为：' + i);
// }
// i 当前为：1
// i 当前为：3
// i 当前为：5
// i 当前为：7
// i 当前为：9

//1.3.7-5
//排列组合
top:
  for (var i = 0; i < 3; i++){
    for (var j = 0; j < 3; j++){
      if (i === 1 && j === 1) continue top;
      console.log('i=' + i + ', j=' + j);
    }
  }
  // i=0, j=0
// i=0, j=1
// i=0, j=2
// i=1, j=0
// i=2, j=0
// i=2, j=1
// i=2, j=2